NOTE: PROCEDURE PRINTTO used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
      

3    
4    
5    DM "log; clear; ";
6    DM 'odsresults; clear';
7    
8    %global projectrootdirectory;
9    %let projectrootdirectory=C:/Users/hpham13/Projects/mf_activism/empirical;
10   
11   *Creates your local Libraries;
12   libname rawdata "&projectrootdirectory./0_input/original";
NOTE: Libref RAWDATA was successfully assigned as follows: 
      Engine:        V9 
      Physical Name: C:\Users\hpham13\Projects\mf_activism\empirical\0_input\original
13   libname rawdata2 "&projectrootdirectory./0_input/original/finaldatadepvars";
NOTE: Libref RAWDATA2 was successfully assigned as follows: 
      Engine:        V9 
      Physical Name: 
      C:\Users\hpham13\Projects\mf_activism\empirical\0_input\original\finaldatadepvars
14   libname save "&projectrootdirectory./0_input/final";
NOTE: Libref SAVE was successfully assigned as follows: 
      Engine:        V9 
      Physical Name: C:\Users\hpham13\Projects\mf_activism\empirical\0_input\final
14 !                                                         /*where you save outputs*/
15   
16   %let datadirectory= C:/Users/hpham13/data ;
17   
18   libname lnk "&datadirectory./Linking_tables/";
NOTE: Libref LNK was successfully assigned as follows: 
      Engine:        V9 
      Physical Name: C:\Users\hpham13\data\Linking_tables
19   libname ceo "&datadirectory./ceo/";
NOTE: Libref CEO was successfully assigned as follows: 
      Engine:        V9 
      Physical Name: C:\Users\hpham13\data\ceo
20   libname activism "&datadirectory./activism/" ;
NOTE: Libref ACTIVISM was successfully assigned as follows: 
      Engine:        V9 
      Physical Name: C:\Users\hpham13\data\activism
21   libname comp "&datadirectory./compustat/fundq/";
NOTE: Libref COMP was successfully assigned as follows: 
      Engine:        V9 
      Physical Name: C:\Users\hpham13\data\compustat\fundq
22   libname compa "&datadirectory./compustat/funda/";
NOTE: Libref COMPA was successfully assigned as follows: 
      Engine:        V9 
      Physical Name: C:\Users\hpham13\data\compustat\funda
23   libname ibes "&datadirectory./IBES";
NOTE: Libref IBES was successfully assigned as follows: 
      Engine:        V9 
      Physical Name: C:\Users\hpham13\data\IBES
24   
25   * include some macros;
26   %include "&datadirectory./utils/do_over.sas";
333  %include "&datadirectory./utils/ff48.sas";
405  %include "&datadirectory./utils/ff49.sas";
478  %include "&datadirectory./utils/ff12.sas";
517  %include "&datadirectory./utils/winsorize.sas";
605   %include "&datadirectory./utils/lags.sas";
784   
785   
786   
787   /* ************************************************************************ */
788   /* ***********************  PART 1: IMPORT DATA  ************************** */
789   /* ************************************************************************ */
790   
791   %let fname  = 111624_idx;       * cutoff 1.0% ;
792   * cutoff 1%;
793   data stockpick; set rawdata2.stkpick&fname.;
794       label relstkpick1="RelInformedTrade cutoff 1%" ;
795   run;

NOTE: There were 196244 observations read from the data set RAWDATA2.STKPICK111624_IDX.
NOTE: The data set WORK.STOCKPICK has 196244 observations and 26 variables.
NOTE: DATA statement used (Total process time):
      real time           0.17 seconds
      cpu time            0.01 seconds
      

796   proc sort nodupkey; by gvkey rdq; run;

NOTE: There were 196244 observations read from the data set WORK.STOCKPICK.
NOTE: 1019 observations with duplicate key values were deleted.
NOTE: The data set WORK.STOCKPICK has 195225 observations and 26 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.05 seconds
      cpu time            0.09 seconds
      

797   
798   /* merge stacked data and others */
799   data stacked_data; set rawdata.stacked_data_111624; run;

NOTE: There were 50730 observations read from the data set RAWDATA.STACKED_DATA_111624.
NOTE: The data set WORK.STACKED_DATA has 50730 observations and 52 variables.
NOTE: DATA statement used (Total process time):
      real time           0.01 seconds
      cpu time            0.01 seconds
      

800   
801   * make the cohort-year (cid is cohort quarter id);
802   data stacked_data; set stacked_data;
803       if qd_rel = 0 then _cohort_y = fyearq; else _cohort_y = 0;
804   run;

NOTE: There were 50730 observations read from the data set WORK.STACKED_DATA.
NOTE: The data set WORK.STACKED_DATA has 50730 observations and 53 variables.
NOTE: DATA statement used (Total process time):
      real time           0.01 seconds
      cpu time            0.01 seconds
      

805   proc sql;
806       create table stacked_data as
807       select *, max(_cohort_y) as cohort_y label='Cohort Year'
808       from stacked_data
809       group by cid ;
NOTE: The query requires remerging summary statistics back with the original data.
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
NOTE: Table WORK.STACKED_DATA created, with 50730 rows and 54 columns.

810   quit;
NOTE: PROCEDURE SQL used (Total process time):
      real time           0.05 seconds
      cpu time            0.06 seconds
      

811   data stacked_data; set stacked_data;
812       drop _cohort_y ;
813   run;

NOTE: There were 50730 observations read from the data set WORK.STACKED_DATA.
NOTE: The data set WORK.STACKED_DATA has 50730 observations and 53 variables.
NOTE: DATA statement used (Total process time):
      real time           0.01 seconds
      cpu time            0.01 seconds
      

814   proc sort data=stacked_data; by cid pairid treated qd_rel; run;

NOTE: There were 50730 observations read from the data set WORK.STACKED_DATA.
NOTE: The data set WORK.STACKED_DATA has 50730 observations and 53 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.02 seconds
      cpu time            0.03 seconds
      

815   
816   * activism data;
817   data pilot; set activism.ca_details_95_pilot; run;

NOTE: There were 9262 observations read from the data set ACTIVISM.CA_DETAILS_95_PILOT.
NOTE: The data set WORK.PILOT has 9262 observations and 147 variables.
NOTE: DATA statement used (Total process time):
      real time           0.06 seconds
      cpu time            0.04 seconds
      

818   proc sort data=pilot nodupkey; by  gvkey CAMPAIGN_ID ; run;

NOTE: There were 9262 observations read from the data set WORK.PILOT.
NOTE: 0 observations with duplicate key values were deleted.
NOTE: The data set WORK.PILOT has 9262 observations and 147 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.11 seconds
      cpu time            0.12 seconds
      

819   
820   *check if two campaigns happens during the period of 8 quarters ;
821   proc sort data=pilot;
822       by gvkey ANNOUNCE_DATE;
823   run;

NOTE: There were 9262 observations read from the data set WORK.PILOT.
NOTE: The data set WORK.PILOT has 9262 observations and 147 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.10 seconds
      cpu time            0.11 seconds
      

824   data pilot; set pilot;
825       by gvkey ;
826       ANNOUNCE_DATE_l = lag(ANNOUNCE_DATE);
827       if first.gvkey then ANNOUNCE_DATE_l=.;
828       format ANNOUNCE_DATE_l YYMMDD10. ;
829       * count the number of quarters;
830       days_diff = intck('day', ANNOUNCE_DATE_l, ANNOUNCE_DATE);
831       if ANNOUNCE_DATE_l = . then days_diff = . ;
832       if days_diff ne . then quarter_diff = days_diff/30 ;
833           else quarter_diff = . ;
834       format quarter_diff comma8.1;
835   run;

NOTE: Missing values were generated as a result of performing an operation on missing values.
      Each place is given by: (Number of times) at (Line):(Column).
      4328 at 830:17   
NOTE: There were 9262 observations read from the data set WORK.PILOT.
NOTE: The data set WORK.PILOT has 9262 observations and 150 variables.
NOTE: DATA statement used (Total process time):
      real time           0.07 seconds
      cpu time            0.07 seconds
      

836   
837   proc sort data=pilot out=pilot;
838       by gvkey descending ANNOUNCE_DATE;
839   run;

NOTE: There were 9262 observations read from the data set WORK.PILOT.
NOTE: The data set WORK.PILOT has 9262 observations and 150 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.10 seconds
      cpu time            0.10 seconds
      

840   
841   data pilot;
842       set pilot;
843       by gvkey;
844       retain ANNOUNCE_DATE_f;
845       if first.gvkey then ANNOUNCE_DATE_f = .;
846       ANNOUNCE_DATE_f = lag(ANNOUNCE_DATE);
847       if first.gvkey then ANNOUNCE_DATE_f = .;
848       output;
849   run;

NOTE: There were 9262 observations read from the data set WORK.PILOT.
NOTE: The data set WORK.PILOT has 9262 observations and 151 variables.
NOTE: DATA statement used (Total process time):
      real time           0.07 seconds
      cpu time            0.07 seconds
      

850   
851   data pilot;
852       set pilot;
853       format ANNOUNCE_DATE_f YYMMDD10. ;
854       * count the number of quarters;
855       days_diff_2 = intck('day', ANNOUNCE_DATE, ANNOUNCE_DATE_f);
856       if ANNOUNCE_DATE = . then days_diff_2 = . ;
857       if days_diff_2 ne . then quarter_diff_2 = days_diff_2/30 ;
858           else quarter_diff_2 = . ;
859       format quarter_diff_2 comma8.1;
860   run;

NOTE: Missing values were generated as a result of performing an operation on missing values.
      Each place is given by: (Number of times) at (Line):(Column).
      4328 at 855:19   
NOTE: There were 9262 observations read from the data set WORK.PILOT.
NOTE: The data set WORK.PILOT has 9262 observations and 153 variables.
NOTE: DATA statement used (Total process time):
      real time           0.07 seconds
      cpu time            0.06 seconds
      

861   
862   proc sort data=pilot out=pilot;
863       by gvkey ANNOUNCE_DATE;
864   run;

NOTE: There were 9262 observations read from the data set WORK.PILOT.
NOTE: The data set WORK.PILOT has 9262 observations and 153 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.10 seconds
      cpu time            0.09 seconds
      

865   
866   * other activism vars;
867   data sharkwatch;
868       set activism.tohai_activists_12032023;
869   run;

NOTE: There were 3023 observations read from the data set ACTIVISM.TOHAI_ACTIVISTS_12032023.
NOTE: The data set WORK.SHARKWATCH has 3023 observations and 5 variables.
NOTE: DATA statement used (Total process time):
      real time           0.00 seconds
      cpu time            0.01 seconds
      

870   proc sort data=sharkwatch nodupkey; by CAMPAIGN_ID; run;

NOTE: There were 3023 observations read from the data set WORK.SHARKWATCH.
NOTE: 0 observations with duplicate key values were deleted.
NOTE: The data set WORK.SHARKWATCH has 3023 observations and 5 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
      

871   
872   * Activist prior experience;
873   data activist_prior_exp;
874       set rawdata.activist_prior_exp;
875   run;

NOTE: There were 2110 observations read from the data set RAWDATA.ACTIVIST_PRIOR_EXP.
NOTE: The data set WORK.ACTIVIST_PRIOR_EXP has 2110 observations and 21 variables.
NOTE: DATA statement used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
      

876   
877   %let qd = (year(ANNOUNCE_DATE)*4  + qtr(ANNOUNCE_DATE) - 1925*4);
878   data activist_prior_exp; set activist_prior_exp ;
879       if ANNOUNCE_DATE ne . then do ;
880           qd = &qd;
881       end;
882   run;

NOTE: There were 2110 observations read from the data set WORK.ACTIVIST_PRIOR_EXP.
NOTE: The data set WORK.ACTIVIST_PRIOR_EXP has 2110 observations and 21 variables.
NOTE: DATA statement used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
      

883   proc sort data=activist_prior_exp nodupkey; by gvkey year qd; run;

NOTE: There were 2110 observations read from the data set WORK.ACTIVIST_PRIOR_EXP.
NOTE: 227 observations with duplicate key values were deleted.
NOTE: The data set WORK.ACTIVIST_PRIOR_EXP has 1883 observations and 21 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
      

884   
885   /* Merge data*/
886   proc sql;
887       create table stacked_data2 as
888       select  a.*, b.*, c.*, d.prior_exp,
889               d.mean_prior_exp_sic2, d.med_prior_exp_sic2,
890               d.med_NUMBER_CAMPAIGNS, d.mean_NUMBER_CAMPAIGNS,
891               d.med_ACTIVIST_THREAT_RATING, d.mean_ACTIVIST_THREAT_RATING
892       from    stacked_data as a left join pilot as b
893       on      a.gvkey=b.gvkey and
894               a.FACTSET_ENTITY_ID=b.FACTSET_ENTITY_ID and
895               a.CAMPAIGN_ID=b.CAMPAIGN_ID
896       left join sharkwatch as c
897       on      a.CAMPAIGN_ID=c.CAMPAIGN_ID
898       left join activist_prior_exp as d
899       on      a.gvkey=d.gvkey and a.qd=d.qd ;
WARNING: Variable CAMPAIGN_ID already exists on file WORK.STACKED_DATA2.
WARNING: Variable ANNOUNCE_DATE already exists on file WORK.STACKED_DATA2.
WARNING: Variable FILING_DATE already exists on file WORK.STACKED_DATA2.
WARNING: Variable END_DATE already exists on file WORK.STACKED_DATA2.
WARNING: Variable FACTSET_ENTITY_ID already exists on file WORK.STACKED_DATA2.
WARNING: Variable ENTITY_PROPER_NAME already exists on file WORK.STACKED_DATA2.
WARNING: Variable gvkey already exists on file WORK.STACKED_DATA2.
WARNING: Variable CAMPAIGN_ID already exists on file WORK.STACKED_DATA2.
NOTE: Table WORK.STACKED_DATA2 created, with 50730 rows and 210 columns.

900   quit;
NOTE: PROCEDURE SQL used (Total process time):
      real time           1.43 seconds
      cpu time            1.73 seconds
      

901   proc sort data=stacked_data2 nodupkey; by cID PairID treated qd_rel ; run;

NOTE: There were 50730 observations read from the data set WORK.STACKED_DATA2.
NOTE: 0 observations with duplicate key values were deleted.
NOTE: The data set WORK.STACKED_DATA2 has 50730 observations and 210 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.58 seconds
      cpu time            0.59 seconds
      

902   
903   
904   * create the SIC2 ;
905   data stacked_data2;
906       set stacked_data2;
907       sic_num = input(sic, 8.);
908       sic2 = floor(sic/100);
909   run;

NOTE: Character values have been converted to numeric values at the places given by: 
      (Line):(Column).
      908:18   
NOTE: There were 50730 observations read from the data set WORK.STACKED_DATA2.
NOTE: The data set WORK.STACKED_DATA2 has 50730 observations and 212 variables.
NOTE: DATA statement used (Total process time):
      real time           0.40 seconds
      cpu time            0.39 seconds
      

910   
911   * count the number of campaigns per sic2-year ;
912   proc sql;
913       create table stacked_data2 as
914       select
915           a.*, b.number_campaigns_ind, b.avg_campaigns_ind, b.med_campaigns_ind,
915 ! b.sd_campaigns_ind,
916           b.med_activist_threat_rating, b.sum_activist_threat_rating,
916 ! b.avg_activist_threat_rating
917       from stacked_data2 as a
918       left join (
919       select distinct CAMPAIGN_ID, sic2, year
920           , sum( number_campaigns) as number_campaigns_ind label="N campaigns (industry)"
921           , mean( number_campaigns) as avg_campaigns_ind format comma8.3
922           , median( number_campaigns) as med_campaigns_ind format comma8.2
923           , std( number_campaigns) as sd_campaigns_ind format comma8.2
924           , median(activist_threat_rating) as med_activist_threat_rating format comma8.2
925           , avg(activist_threat_rating) as avg_activist_threat_rating format comma8.2
926           , sum(activist_threat_rating) as sum_activist_threat_rating format comma8.2
927           from stacked_data2
928           group by sic2, year
929           having number_campaigns ne . and activist_threat_rating ne .
930           ) as b
931       on  a.CAMPAIGN_ID=b.CAMPAIGN_ID and
932           a.sic2=b.sic2 and
933           a.year=b.year  ;
NOTE: The query requires remerging summary statistics back with the original data.
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
WARNING: Variable med_activist_threat_rating already exists on file WORK.STACKED_DATA2.
NOTE: Table WORK.STACKED_DATA2 created, with 50730 rows and 218 columns.

934   quit;
NOTE: PROCEDURE SQL used (Total process time):
      real time           1.21 seconds
      cpu time            1.35 seconds
      

935   
936   
937   /* ************************************************************************ */
938   /* ********************  PART 2: MERGE FUNDQ, FUNDA  ********************** */
939   /* ************************************************************************ */
940   * Merge stacked data and MFF stock picking ability;
941   proc sql;
942       create table Analysis as
943       select  a.*, b.*
944       from    stacked_data2 as a left join stockpick as b
945       on      a.gvkey=b.gvkey and a.rdq=b.rdq ;
WARNING: Variable gvkey already exists on file WORK.ANALYSIS.
WARNING: Variable datadate already exists on file WORK.ANALYSIS.
WARNING: Variable rdq already exists on file WORK.ANALYSIS.
WARNING: Variable qd already exists on file WORK.ANALYSIS.
WARNING: Variable year already exists on file WORK.ANALYSIS.
NOTE: Table WORK.ANALYSIS created, with 50730 rows and 239 columns.

946   quit;
NOTE: PROCEDURE SQL used (Total process time):
      real time           0.96 seconds
      cpu time            1.14 seconds
      

947   
948   * Sort again to get the original order;
949   proc sort data=Analysis nodupkey; by cID PairID treated gvkey datadate; run;

NOTE: There were 50730 observations read from the data set WORK.ANALYSIS.
NOTE: 0 observations with duplicate key values were deleted.
NOTE: The data set WORK.ANALYSIS has 50730 observations and 239 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.61 seconds
      cpu time            0.59 seconds
      

950   
951   *handle outliers;
952   data Analysis; set Analysis; fyear=year(datadate); run;

NOTE: There were 50730 observations read from the data set WORK.ANALYSIS.
NOTE: The data set WORK.ANALYSIS has 50730 observations and 240 variables.
NOTE: DATA statement used (Total process time):
      real time           0.38 seconds
      cpu time            0.37 seconds
      

953   %winsor(dsetin=work.Analysis,
953 ! dsetout=work.Analysis,byvar=fyear,vars=relstkpick1,type=trim,pctl=1 99);

NOTE: There were 50730 observations read from the data set WORK.ANALYSIS.
NOTE: The data set WORK.XTEMP has 50730 observations and 240 variables.
NOTE: DATA statement used (Total process time):
      real time           0.34 seconds
      cpu time            0.34 seconds
      


NOTE: There were 50730 observations read from the data set WORK.XTEMP.
NOTE: The data set WORK.XTEMP has 50730 observations and 240 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.59 seconds
      cpu time            0.59 seconds
      

NOTE: Writing HTML Body file: sashtml.htm

NOTE: The data set WORK.XTEMP_PCTL has 28 observations and 3 variables.
NOTE: PROCEDURE UNIVARIATE used (Total process time):
      real time           0.39 seconds
      cpu time            0.26 seconds
      


WARNING: The variable xbyvar in the DROP, KEEP, or RENAME list has never been referenced.
NOTE: There were 50730 observations read from the data set WORK.XTEMP.
NOTE: There were 28 observations read from the data set WORK.XTEMP_PCTL.
NOTE: The data set WORK.ANALYSIS has 50062 observations and 240 variables.
NOTE: DATA statement used (Total process time):
      real time           0.42 seconds
      cpu time            0.40 seconds
      

954   data Analysis; set Analysis; drop fyear ; run;

NOTE: There were 50062 observations read from the data set WORK.ANALYSIS.
NOTE: The data set WORK.ANALYSIS has 50062 observations and 239 variables.
NOTE: DATA statement used (Total process time):
      real time           0.38 seconds
      cpu time            0.39 seconds
      

955   proc sql;
955 !           drop table xtemp, xtemp_pctl;
NOTE: Table WORK.XTEMP has been dropped.
NOTE: Table WORK.XTEMP_PCTL has been dropped.
955 !                                         quit;
NOTE: PROCEDURE SQL used (Total process time):
      real time           0.04 seconds
      cpu time            0.04 seconds
      

956   
957   data fundq_clean;
958       set rawdata.comp_fundq_clean;
959       keep gvkey rdq datadate fyearq fyr fqtr be /*me*/ bd ppegtq PnI saleq to dlttq dlcq
960       oibdpq oiadpq pm ic tacq revq drevq drevadjq ppeq roaq roaq_lag1 me ml bm
961       atq_lag1 saleq_lag1 rectq_lag1 ibq ibq_lag1 size size_l lvrg_l lvrg seqq ltq niq niq_l
961 ! ;
962       if atq > 0 and atq_lag1 > 0 ;
963       size   = log(atq);
964       size_l = log(atq_lag1);
965       lvrg_l = bd/atq_lag1;
966       lvrg   = dlttq/atq;
967       if lvrg eq . then lvrg = 0 ;
968   run;

WARNING: The variable niq_l in the DROP, KEEP, or RENAME list has never been referenced.
NOTE: Missing values were generated as a result of performing an operation on missing values.
      Each place is given by: (Number of times) at (Line):(Column).
      227702 at 965:16   8651 at 966:19     
NOTE: There were 1125340 observations read from the data set RAWDATA.COMP_FUNDQ_CLEAN.
NOTE: The data set WORK.FUNDQ_CLEAN has 1012247 observations and 40 variables.
NOTE: DATA statement used (Total process time):
      real time           0.26 seconds
      cpu time            0.26 seconds
      

969   proc sort data=fundq_clean nodupkey; by gvkey datadate; run;

NOTE: There were 1012247 observations read from the data set WORK.FUNDQ_CLEAN.
NOTE: 0 observations with duplicate key values were deleted.
NOTE: The data set WORK.FUNDQ_CLEAN has 1012247 observations and 40 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.26 seconds
      cpu time            0.43 seconds
      

970   
971   %let winsVars2 = saleq revq ;
972   %winsor(dsetin=work.fundq_clean, dsetout=work.fundq_clean, byvar=fyearq, vars=&winsVars2,
972 ! type=winsor, pctl=1 99);

NOTE: There were 1012247 observations read from the data set WORK.FUNDQ_CLEAN.
NOTE: The data set WORK.XTEMP has 1012247 observations and 40 variables.
NOTE: DATA statement used (Total process time):
      real time           0.15 seconds
      cpu time            0.15 seconds
      


NOTE: There were 1012247 observations read from the data set WORK.XTEMP.
NOTE: The data set WORK.XTEMP has 1012247 observations and 40 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.27 seconds
      cpu time            0.50 seconds
      


NOTE: The data set WORK.XTEMP_PCTL has 30 observations and 5 variables.
NOTE: PROCEDURE UNIVARIATE used (Total process time):
      real time           0.72 seconds
      cpu time            0.71 seconds
      


WARNING: The variable xbyvar in the DROP, KEEP, or RENAME list has never been referenced.
NOTE: There were 1012247 observations read from the data set WORK.XTEMP.
NOTE: There were 30 observations read from the data set WORK.XTEMP_PCTL.
NOTE: The data set WORK.FUNDQ_CLEAN has 1012247 observations and 40 variables.
NOTE: DATA statement used (Total process time):
      real time           0.23 seconds
      cpu time            0.20 seconds
      

973   
974   * get more fundq vars;
975   data fundq_add; set comp.fundq_1950_2021;
976       keep gvkey datadate intanq;
977       where datadate>'01JAN1990'd;
978   run;

NOTE: There were 1441077 observations read from the data set COMP.FUNDQ_1950_2021.
      WHERE datadate>'01JAN1990'D;
NOTE: The data set WORK.FUNDQ_ADD has 1441077 observations and 3 variables.
NOTE: DATA statement used (Total process time):
      real time           0.28 seconds
      cpu time            0.28 seconds
      

979   
980   proc sort data=fundq_add nodupkey; by gvkey datadate; run;

NOTE: There were 1441077 observations read from the data set WORK.FUNDQ_ADD.
NOTE: 1238 observations with duplicate key values were deleted.
NOTE: The data set WORK.FUNDQ_ADD has 1439839 observations and 3 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.07 seconds
      cpu time            0.20 seconds
      

981   proc sort data=fundq_clean nodupkey; by gvkey datadate; run;

NOTE: There were 1012247 observations read from the data set WORK.FUNDQ_CLEAN.
NOTE: 0 observations with duplicate key values were deleted.
NOTE: The data set WORK.FUNDQ_CLEAN has 1012247 observations and 40 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.26 seconds
      cpu time            0.43 seconds
      

982   data fundq_clean;
983       merge fundq_clean(in=a) fundq_add (in=b);
984       by gvkey datadate;
985       if a;
986   run;

NOTE: There were 1012247 observations read from the data set WORK.FUNDQ_CLEAN.
NOTE: There were 1439839 observations read from the data set WORK.FUNDQ_ADD.
NOTE: The data set WORK.FUNDQ_CLEAN has 1012247 observations and 41 variables.
NOTE: DATA statement used (Total process time):
      real time           0.28 seconds
      cpu time            0.28 seconds
      

987   
988   * Create calendar date of fiscal period end in Compustat extract;
989   data fundq_clean; set fundq_clean;
990      if (1<=fyr<=5) then date_fyend=intnx('month',mdy(fyr,1,fyearq+1),0,'end');
991      else if (6<=fyr<=12) then date_fyend=intnx('month',mdy(fyr,1,fyearq),0,'end');
992      fqenddt=intnx('month',date_fyend,-3*(4-fqtr),'end');
993      format fqenddt date9.;
994      drop date_fyend;
995   run;

NOTE: There were 1012247 observations read from the data set WORK.FUNDQ_CLEAN.
NOTE: The data set WORK.FUNDQ_CLEAN has 1012247 observations and 42 variables.
NOTE: DATA statement used (Total process time):
      real time           0.46 seconds
      cpu time            0.46 seconds
      

996   
997   * calculate moving sum of quarterly loss;
998   data fundq_clean; set fundq_clean;
999       if niq <=0 then lossq = 1 ; else lossq = 0;
1000  run;

NOTE: There were 1012247 observations read from the data set WORK.FUNDQ_CLEAN.
NOTE: The data set WORK.FUNDQ_CLEAN has 1012247 observations and 43 variables.
NOTE: DATA statement used (Total process time):
      real time           0.21 seconds
      cpu time            0.18 seconds
      

1001  
1002  proc sort data=fundq_clean; by gvkey datadate; run;

NOTE: There were 1012247 observations read from the data set WORK.FUNDQ_CLEAN.
NOTE: The data set WORK.FUNDQ_CLEAN has 1012247 observations and 43 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.27 seconds
      cpu time            0.46 seconds
      

1003  proc expand data=fundq_clean out=fundq_clean;
1004      by gvkey ;
1005      id datadate;
1006      convert lossq = sum_lossq12 / transformout=(movsum 16);
1007      convert niq = ma_niq12 / transformout=(movave 16);
1008      convert ibq = sd_niq12 / transformout=(movstd 16);
1009      convert roaq = sd_roaq12 / transformout=(movstd 16);
1010  run;

WARNING: The variable niq has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
WARNING: The variable ibq has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
WARNING: The variable roaq has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
NOTE: The above message was for the following BY group:
      Global Company Key=009879
WARNING: The variable niq has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
WARNING: The variable ibq has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
WARNING: The variable roaq has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
NOTE: The above message was for the following BY group:
      Global Company Key=010673
WARNING: The variable niq has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
WARNING: The variable ibq has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
WARNING: The variable roaq has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
NOTE: The above message was for the following BY group:
      Global Company Key=013260
WARNING: The variable niq has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
WARNING: The variable ibq has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
WARNING: The variable roaq has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
NOTE: The above message was for the following BY group:
      Global Company Key=013530
WARNING: The variable niq has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
WARNING: The variable ibq has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
WARNING: The variable roaq has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
NOTE: The above message was for the following BY group:
      Global Company Key=013938
WARNING: The variable niq has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
WARNING: The variable ibq has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
WARNING: The variable roaq has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
NOTE: The above message was for the following BY group:
      Global Company Key=060976
NOTE: The data set WORK.FUNDQ_CLEAN has 1012247 observations and 47 variables.
NOTE: PROCEDURE EXPAND used (Total process time):
      real time           1.44 seconds
      cpu time            1.45 seconds
      

1011  
1012  data fundq_clean; set fundq_clean;
1013      drop datadate;
1014  run;

NOTE: There were 1012247 observations read from the data set WORK.FUNDQ_CLEAN.
NOTE: The data set WORK.FUNDQ_CLEAN has 1012247 observations and 46 variables.
NOTE: DATA statement used (Total process time):
      real time           0.20 seconds
      cpu time            0.20 seconds
      

1015  
1016  * add funda vars;
1017  data funda_clean;
1018      set rawdata.comp_funda_clean2020;
1019      if at>0 & at_l>0;
1020      asize   = log(at);
1021      asize_l = log(at_l);
1022      bm_ann = bm;
1023      roa2 = ib_l/at_l;
1024      if ni < 0 then loss_a = 1; else loss_a = 0;
1025      where datadate ne . and at>0;
1026      label asize = "Log(AT)"
1027      asize_l = "Log(AT_l)" ;
1028  run;

NOTE: Missing values were generated as a result of performing an operation on missing values.
      Each place is given by: (Number of times) at (Line):(Column).
      272 at 1023:16   
NOTE: There were 182044 observations read from the data set RAWDATA.COMP_FUNDA_CLEAN2020.
      WHERE (datadate not = .) and (at>0);
NOTE: The data set WORK.FUNDA_CLEAN has 181286 observations and 118 variables.
NOTE: DATA statement used (Total process time):
      real time           0.09 seconds
      cpu time            0.07 seconds
      

1029  proc sort data=funda_clean nodupkey ; by gvkey fyear; run;

NOTE: There were 181286 observations read from the data set WORK.FUNDA_CLEAN.
NOTE: 0 observations with duplicate key values were deleted.
NOTE: The data set WORK.FUNDA_CLEAN has 181286 observations and 118 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.14 seconds
      cpu time            0.20 seconds
      

1030  
1031  proc expand data=funda_clean out=funda_clean;
1032      by gvkey;
1033      id fyear;
1034      convert loss_a = sum_loss_a5 / transformout=(movsum 10);
1035      convert roa2 = ma_roa5 / transformout=(movstd 10);
1036      convert ib = ma_ni5 / transformout=(movstd 10);
1037  run;

WARNING: The variable ib has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
NOTE: The above message was for the following BY group:
      Global Company Key=009879
WARNING: The variable ib has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
NOTE: The above message was for the following BY group:
      Global Company Key=012161
WARNING: The variable roa2 has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
WARNING: The variable ib has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
NOTE: The above message was for the following BY group:
      Global Company Key=013260
WARNING: The variable ib has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
NOTE: The above message was for the following BY group:
      Global Company Key=013530
WARNING: The variable ib has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
NOTE: The above message was for the following BY group:
      Global Company Key=028379
WARNING: The variable roa2 has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
NOTE: The above message was for the following BY group:
      Global Company Key=030719
WARNING: The variable ib has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
NOTE: The above message was for the following BY group:
      Global Company Key=031810
WARNING: The variable roa2 has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
NOTE: The above message was for the following BY group:
      Global Company Key=065561
WARNING: The variable ib has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
NOTE: The above message was for the following BY group:
      Global Company Key=065844
WARNING: The variable roa2 has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
NOTE: The above message was for the following BY group:
      Global Company Key=066707
WARNING: The variable ib has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
NOTE: The above message was for the following BY group:
      Global Company Key=110320
WARNING: The variable roa2 has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
WARNING: The variable ib has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
NOTE: The above message was for the following BY group:
      Global Company Key=129631
WARNING: The variable roa2 has only 0 nonmissing observations, which is too few to apply the 
         conversion method. The result series is set to missing.
NOTE: The above message was for the following BY group:
      Global Company Key=144564
NOTE: The data set WORK.FUNDA_CLEAN has 181286 observations and 121 variables.
NOTE: PROCEDURE EXPAND used (Total process time):
      real time           0.57 seconds
      cpu time            0.56 seconds
      

1038  
1039  * add additional funda vars;
1040  data funda_add; set compa.funda_1950_2021;
1041      keep gvkey datadate intan ;
1042  run;

NOTE: There were 861623 observations read from the data set COMPA.FUNDA_1950_2021.
NOTE: The data set WORK.FUNDA_ADD has 861623 observations and 3 variables.
NOTE: DATA statement used (Total process time):
      real time           1.27 seconds
      cpu time            0.14 seconds
      

1043  proc sort data=funda_add nodupkey; by gvkey datadate; run;

NOTE: There were 861623 observations read from the data set WORK.FUNDA_ADD.
NOTE: 307572 observations with duplicate key values were deleted.
NOTE: The data set WORK.FUNDA_ADD has 554051 observations and 3 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.06 seconds
      cpu time            0.14 seconds
      

1044  
1045  data funda_clean;
1046      merge funda_clean(in=a) funda_add(in=b);
1047      by gvkey datadate;
1048      if a;
1049  run;

NOTE: There were 181286 observations read from the data set WORK.FUNDA_CLEAN.
NOTE: There were 554051 observations read from the data set WORK.FUNDA_ADD.
NOTE: The data set WORK.FUNDA_CLEAN has 181286 observations and 122 variables.
NOTE: DATA statement used (Total process time):
      real time           0.15 seconds
      cpu time            0.15 seconds
      

1050  
1051  * calculate firm age using the current funda_clean;
1052  data funda_clean ;
1053      set funda_clean;
1054      by gvkey;
1055      if first.gvkey then
1056          firm_age=0;
1057      firm_age + 1;
1058  run;

NOTE: There were 181286 observations read from the data set WORK.FUNDA_CLEAN.
NOTE: The data set WORK.FUNDA_CLEAN has 181286 observations and 123 variables.
NOTE: DATA statement used (Total process time):
      real time           0.10 seconds
      cpu time            0.10 seconds
      

1059  proc sort data=funda_clean; by gvkey fyear;  run;

NOTE: There were 181286 observations read from the data set WORK.FUNDA_CLEAN.
NOTE: The data set WORK.FUNDA_CLEAN has 181286 observations and 123 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.15 seconds
      cpu time            0.21 seconds
      

1060  
1061  * Calculate the mean, median, and standard deviation by industry ;
1062  proc sql;
1063      create table funda_clean as
1064      select *,
1065          mean(firm_age) as ind_mean_firm_age label="Industry mean firm age",
1066          median(firm_age) as ind_med_firm_age label="Industry median firm age",
1067          std(firm_age) as ind_std_firm_age label="Industry Std firm age"
1068      from funda_clean
1069      group by sic2, fyear
1070      order by gvkey, fyear;
NOTE: The query requires remerging summary statistics back with the original data.
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
NOTE: Table WORK.FUNDA_CLEAN created, with 181286 rows and 126 columns.

1071  quit;
NOTE: PROCEDURE SQL used (Total process time):
      real time           0.36 seconds
      cpu time            0.51 seconds
      

1072  
1073  * Merge stacked data and firm characteristics;
1074  data StateName;
1075      set rawdata.firmStateName;
1076  run;

NOTE: There were 41696 observations read from the data set RAWDATA.FIRMSTATENAME.
NOTE: The data set WORK.STATENAME has 41696 observations and 10 variables.
NOTE: DATA statement used (Total process time):
      real time           0.01 seconds
      cpu time            0.00 seconds
      

1077  
1078  proc sql;
1079      create table Analysis as
1080      select  a.*,b.*,
1081              c.StateName label="Firm HQ State", c.ST label="State",
1082              d.at, d.at_l, d.sale, d.sale_l, d.ni, d.ib, d.ibc,
1083              d.firm_age, d.ind_mean_firm_age, d.ind_std_firm_age, d.ind_med_firm_age,
1084              d.revt, d.revt_l, d.ceq, d.datadate as datadate_ann, d.xrd, d.intan,
1085              d.ma_roa5, d.ma_ni5, d.sum_loss_a5
1086      from    Analysis as a
1087      left join fundq_clean as b
1088          on  a.gvkey=b.gvkey and a.rdq=b.rdq
1089      left join StateName as c
1090          on  a.gvkey=c.gvkey
1091      left join funda_clean as d
1092          on  a.gvkey=d.gvkey and a.fyearq=d.fyear ;
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
WARNING: Variable gvkey already exists on file WORK.ANALYSIS.
WARNING: Variable fyearq already exists on file WORK.ANALYSIS.
WARNING: Variable fqtr already exists on file WORK.ANALYSIS.
WARNING: Variable fyr already exists on file WORK.ANALYSIS.
WARNING: Variable rdq already exists on file WORK.ANALYSIS.
WARNING: Variable dlcq already exists on file WORK.ANALYSIS.
WARNING: Variable dlttq already exists on file WORK.ANALYSIS.
WARNING: Variable ibq already exists on file WORK.ANALYSIS.
WARNING: Variable ltq already exists on file WORK.ANALYSIS.
WARNING: Variable niq already exists on file WORK.ANALYSIS.
WARNING: Variable oiadpq already exists on file WORK.ANALYSIS.
WARNING: Variable oibdpq already exists on file WORK.ANALYSIS.
WARNING: Variable ppegtq already exists on file WORK.ANALYSIS.
WARNING: Variable saleq already exists on file WORK.ANALYSIS.
NOTE: Table WORK.ANALYSIS created, with 50848 rows and 293 columns.

1093  quit;
NOTE: PROCEDURE SQL used (Total process time):
      real time           2.17 seconds
      cpu time            2.75 seconds
      

1094  
1095  proc sql;
1096      create table Analysis as
1097      select *,
1098          max(firm_age) as firm_age2
1099      from Analysis
1100      group by cid, gvkey, year(datadate)
1101      order by cid, pairid, gvkey, rdq;
NOTE: The query requires remerging summary statistics back with the original data.
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
NOTE: Table WORK.ANALYSIS created, with 50848 rows and 294 columns.

1102  quit;
NOTE: PROCEDURE SQL used (Total process time):
      real time           1.38 seconds
      cpu time            1.67 seconds
      

1103  
1104  proc sql;
1105      create table Analysis as
1106      select *,
1107          mean(firm_age) as ind_mean_firm_age2 label="Industry mean firm age",
1108          median(firm_age) as ind_med_firm_age2 label="Industry median firm age",
1109          std(firm_age) as ind_std_firm_age2 label="Industry Std firm age"
1110      from Analysis
1111      group by cid, sic2
1112      order by cid, pairid, gvkey, rdq;
NOTE: The query requires remerging summary statistics back with the original data.
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
NOTE: Table WORK.ANALYSIS created, with 50848 rows and 297 columns.

1113  quit;
NOTE: PROCEDURE SQL used (Total process time):
      real time           1.35 seconds
      cpu time            1.73 seconds
      

1114  
1115  * make calendar year;
1116  data Analysis; set Analysis;
1117      calyear = year(datadate_ann);
1118      if calyear = . then calyear = year(fqenddt);
1119      calqtr = qtr(datadate);
1120  run;

NOTE: Missing values were generated as a result of performing an operation on missing values.
      Each place is given by: (Number of times) at (Line):(Column).
      3559 at 1117:15   127 at 1118:35    
NOTE: There were 50848 observations read from the data set WORK.ANALYSIS.
NOTE: The data set WORK.ANALYSIS has 50848 observations and 299 variables.
NOTE: DATA statement used (Total process time):
      real time           0.40 seconds
      cpu time            0.40 seconds
      

1121  
1122  * compute the average inst ownership over the fiscal year;
1123  proc sql;
1124      create table Analysis as
1125      select *, avg(ior) as avg_ior label="Average Qtr IOR" format comma8.4
1126      from Analysis
1127      group by gvkey, fyearq
1128      order by cid, gvkey, rdq;
NOTE: The query requires remerging summary statistics back with the original data.
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
NOTE: Table WORK.ANALYSIS created, with 50848 rows and 300 columns.

1129  quit;
NOTE: PROCEDURE SQL used (Total process time):
      real time           1.38 seconds
      cpu time            1.74 seconds
      

1130  data Analysis;
1131      retain gvkey fyearq fqtr rdq datadate ANNOUNCE_DATE treated post qd_rel cid pairid qd;
1132      set Analysis;
1133      if cmiss (of relstkpick1 ) eq 0;
1134  run;

NOTE: There were 50848 observations read from the data set WORK.ANALYSIS.
NOTE: The data set WORK.ANALYSIS has 33999 observations and 300 variables.
NOTE: DATA statement used (Total process time):
      real time           0.35 seconds
      cpu time            0.34 seconds
      

1135  
1136  
1137  /* ************************************************************************ */
1138  * make some vars to check the number of non-missing Relstkpick ;
1139  /* ************************************************************************ */
1140  * COUNTER is a cummulative number: 0,1,2,3,4,5 ;
1141  proc sort data=Analysis; by cid gvkey post; run;

NOTE: There were 33999 observations read from the data set WORK.ANALYSIS.
NOTE: The data set WORK.ANALYSIS has 33999 observations and 300 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.40 seconds
      cpu time            0.39 seconds
      

1142  data Analysis;
1143      set Analysis;
1144      by cID gvkey post;
1145      if first.post then COUNTER=0;
1146      COUNTER+(Relstkpick1 ne .);
1147  run;

NOTE: There were 33999 observations read from the data set WORK.ANALYSIS.
NOTE: The data set WORK.ANALYSIS has 33999 observations and 301 variables.
NOTE: DATA statement used (Total process time):
      real time           0.27 seconds
      cpu time            0.26 seconds
      

1148  
1149  proc sql;
1150      * get the max number of obs in the PRE- and POST-period;
1151      create table Analysis as
1152      select *,
1153          max(COUNTER) as COUNTER_BY_POST
1154      from Analysis
1155      group by cID, gvkey, post
1156      order by cid, gvkey, qd_rel ;
NOTE: The query requires remerging summary statistics back with the original data.
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
NOTE: Table WORK.ANALYSIS created, with 33999 rows and 302 columns.

1157  
1158      create table Analysis as
1159      select *,
1160          min(post) as MIN_POST,
1161          max(post) as MAX_POST,
1162          min(COUNTER_BY_POST) as MIN_NOBS_PRE_POST
1163      from Analysis
1164      group by cID, gvkey
1165      order by cid, gvkey, qd_rel ;
NOTE: The query requires remerging summary statistics back with the original data.
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
NOTE: Table WORK.ANALYSIS created, with 33999 rows and 305 columns.

1166  quit;
NOTE: PROCEDURE SQL used (Total process time):
      real time           1.51 seconds
      cpu time            1.73 seconds
      

1167  proc sort data=Analysis ; by cID PairID treated gvkey datadate; run;

NOTE: There were 33999 observations read from the data set WORK.ANALYSIS.
NOTE: The data set WORK.ANALYSIS has 33999 observations and 305 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.41 seconds
      cpu time            0.42 seconds
      

1168  proc sort data=Analysis nodupkey; by cID treated gvkey datadate; run;

NOTE: There were 33999 observations read from the data set WORK.ANALYSIS.
NOTE: 466 observations with duplicate key values were deleted.
NOTE: The data set WORK.ANALYSIS has 33533 observations and 305 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.40 seconds
      cpu time            0.39 seconds
      

1169  
1170  * destring SIC;
1171  data Analysis;  set Analysis;   sic_num = input(sic, 8.); label sic_num="Standard Industry
1171! Classification Code"; drop sic; run;

NOTE: There were 33533 observations read from the data set WORK.ANALYSIS.
NOTE: The data set WORK.ANALYSIS has 33533 observations and 304 variables.
NOTE: DATA statement used (Total process time):
      real time           0.26 seconds
      cpu time            0.25 seconds
      

1172  data Analysis;  set Analysis;   rename sic_num = sic; run;

NOTE: There were 33533 observations read from the data set WORK.ANALYSIS.
NOTE: The data set WORK.ANALYSIS has 33533 observations and 304 variables.
NOTE: DATA statement used (Total process time):
      real time           0.26 seconds
      cpu time            0.25 seconds
      

1173  proc sort data=Analysis nodupkey; by cid gvkey datadate; run;

NOTE: There were 33533 observations read from the data set WORK.ANALYSIS.
NOTE: 0 observations with duplicate key values were deleted.
NOTE: The data set WORK.ANALYSIS has 33533 observations and 304 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.40 seconds
      cpu time            0.39 seconds
      

1174  
1175  
1176  /* ************************************************************************ */
1177  /* ***********************  PART 3: OTHER DATASET  ************************ */
1178  /* ************************************************************************ */
1179  
1180  * Analyst forecast and Analyst following;
1181  data afc; set rawdata.afc_fundq;
1182      keep gvkey fyearq datadate rdq numest lnanalys repdats ryear ;
1183      lnanalys = log(1+numest);
1184      if lnanalys ne . ;
1185      ryear = year(repdats);
1186  run;

NOTE: Missing values were generated as a result of performing an operation on missing values.
      Each place is given by: (Number of times) at (Line):(Column).
      480890 at 1183:16   480890 at 1183:21   
NOTE: There were 988699 observations read from the data set RAWDATA.AFC_FUNDQ.
NOTE: The data set WORK.AFC has 507809 observations and 8 variables.
NOTE: DATA statement used (Total process time):
      real time           0.11 seconds
      cpu time            0.10 seconds
      

1187  proc sort data=afc nodupkey ; by gvkey repdats; run;

NOTE: There were 507809 observations read from the data set WORK.AFC.
NOTE: 1183 observations with duplicate key values were deleted.
NOTE: The data set WORK.AFC has 506626 observations and 8 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.05 seconds
      cpu time            0.12 seconds
      

1188  
1189  proc sql;
1190      create table afc as
1191      select  distinct gvkey, ryear, datadate,
1192              max(numest) as numest_max label="Max #Analyst (year)",
1193              max(lnanalys) as lnanalys_max label="Max #LnAnalyst (year)"
1194      from    afc
1195      group by gvkey, ryear
1196      order by gvkey, datadate;
NOTE: The query requires remerging summary statistics back with the original data.
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
NOTE: Table WORK.AFC created, with 506626 rows and 5 columns.

1197  quit;
NOTE: PROCEDURE SQL used (Total process time):
      real time           0.17 seconds
      cpu time            0.28 seconds
      

1198  
1199  * Stock illiquidity (AIM);
1200  data aim; set rawdata.aim; run;

NOTE: There were 649518 observations read from the data set RAWDATA.AIM.
NOTE: The data set WORK.AIM has 649518 observations and 9 variables.
NOTE: DATA statement used (Total process time):
      real time           0.03 seconds
      cpu time            0.03 seconds
      

1201  proc sort data=aim nodupkey; by gvkey datadate; run;

NOTE: There were 649518 observations read from the data set WORK.AIM.
NOTE: 374 observations with duplicate key values were deleted.
NOTE: The data set WORK.AIM has 649144 observations and 9 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.06 seconds
      cpu time            0.12 seconds
      

1202  
1203  * Price synchronicity (Morck et al 2002);
1204  data psynch ; set rawdata.pinfo_qtr_retx6d; run;

NOTE: There were 515792 observations read from the data set RAWDATA.PINFO_QTR_RETX6D.
NOTE: The data set WORK.PSYNCH has 515792 observations and 9 variables.
NOTE: DATA statement used (Total process time):
      real time           0.02 seconds
      cpu time            0.03 seconds
      

1205  proc sort data=psynch; by gvkey fyear fqtr; run;

NOTE: There were 515792 observations read from the data set WORK.PSYNCH.
NOTE: The data set WORK.PSYNCH has 515792 observations and 9 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.06 seconds
      cpu time            0.12 seconds
      

1206  
1207  data psynch; set psynch;
1208      by gvkey fyear fqtr;
1209      if last.fqtr;
1210  run;

NOTE: There were 515792 observations read from the data set WORK.PSYNCH.
NOTE: The data set WORK.PSYNCH has 515774 observations and 9 variables.
NOTE: DATA statement used (Total process time):
      real time           0.05 seconds
      cpu time            0.04 seconds
      

1211  
1212  * Bushee's IICLASS data;
1213  data io_class;
1214      set rawdata.io_class2022qtr;
1215      rqtr = qtr(rdate);
1216      ryear = year(rdate);
1217  run;

NOTE: There were 737259 observations read from the data set RAWDATA.IO_CLASS2022QTR.
NOTE: The data set WORK.IO_CLASS has 737259 observations and 13 variables.
NOTE: DATA statement used (Total process time):
      real time           0.07 seconds
      cpu time            0.07 seconds
      

1218  
1219  * Financial constraints;
1220  data constraints; set rawdata.constraints; run;

NOTE: There were 162789 observations read from the data set RAWDATA.CONSTRAINTS.
NOTE: The data set WORK.CONSTRAINTS has 162789 observations and 5 variables.
NOTE: DATA statement used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
      

1221  
1222  * Opacity;
1223  data AFERR;
1224      set rawdata.AFERR;
1225      fpeyear = year(FPEDATS);
1226      drop fyear;
1227  run;

NOTE: There were 124683 observations read from the data set RAWDATA.AFERR.
NOTE: The data set WORK.AFERR has 124683 observations and 14 variables.
NOTE: DATA statement used (Total process time):
      real time           0.05 seconds
      cpu time            0.03 seconds
      

1228  proc sort data=AFERR nodupkey; by gvkey fpeyear; run;

NOTE: There were 124683 observations read from the data set WORK.AFERR.
NOTE: 14 observations with duplicate key values were deleted.
NOTE: The data set WORK.AFERR has 124669 observations and 14 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.02 seconds
      cpu time            0.01 seconds
      

1229  data AFERR; set AFERR; drop fpeyear; run;

NOTE: There were 124669 observations read from the data set WORK.AFERR.
NOTE: The data set WORK.AFERR has 124669 observations and 13 variables.
NOTE: DATA statement used (Total process time):
      real time           0.01 seconds
      cpu time            0.01 seconds
      

1230  
1231  * Ivol quarterly;
1232  data retvol; set rawdata.retvolqtr_112824; run;

NOTE: There were 519328 observations read from the data set RAWDATA.RETVOLQTR_112824.
NOTE: The data set WORK.RETVOL has 519328 observations and 7 variables.
NOTE: DATA statement used (Total process time):
      real time           0.11 seconds
      cpu time            0.04 seconds
      

1233  proc sort data=retvol nodupkey; by gvkey enddt; run;

NOTE: There were 519328 observations read from the data set WORK.RETVOL.
NOTE: 0 observations with duplicate key values were deleted.
NOTE: The data set WORK.RETVOL has 519328 observations and 7 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.05 seconds
      cpu time            0.10 seconds
      

1234  
1235  * abnormal volume trading;
1236  data abvolume; set rawdata.abvolume; run;

NOTE: There were 747275 observations read from the data set RAWDATA.ABVOLUME.
NOTE: The data set WORK.ABVOLUME has 747275 observations and 6 variables.
NOTE: DATA statement used (Total process time):
      real time           0.03 seconds
      cpu time            0.03 seconds
      

1237  proc sort data=abvolume nodupkey; by gvkey fyearq fqtr; run;

NOTE: There were 747275 observations read from the data set WORK.ABVOLUME.
NOTE: 29080 observations with duplicate key values were deleted.
NOTE: The data set WORK.ABVOLUME has 718195 observations and 6 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.06 seconds
      cpu time            0.17 seconds
      

1238  
1239  * CAR at meeting dates to activism data;
1240  data car_meetingdt1; set rawdata.car_meetingdt_capm_00;
1241      rename car = car_meeting00;
1242      label car = "AR[0] Meeting dt";
1243  run;

NOTE: There were 1826 observations read from the data set RAWDATA.CAR_MEETINGDT_CAPM_00.
NOTE: The data set WORK.CAR_MEETINGDT1 has 1826 observations and 10 variables.
NOTE: DATA statement used (Total process time):
      real time           0.00 seconds
      cpu time            0.01 seconds
      

1244  proc sort data=car_meetingdt1 nodupkey; by pairid treated gvkey ANNOUNCE_DATE ; run;

NOTE: There were 1826 observations read from the data set WORK.CAR_MEETINGDT1.
NOTE: 0 observations with duplicate key values were deleted.
NOTE: The data set WORK.CAR_MEETINGDT1 has 1826 observations and 10 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
      

1245  
1246  data car_meetingdt2; set rawdata.car_meetingdt_capm_01;
1247      rename car = car_meeting01;
1248      label car = "CAR[0+1] Meeting dt";
1249  run;

NOTE: There were 1826 observations read from the data set RAWDATA.CAR_MEETINGDT_CAPM_01.
NOTE: The data set WORK.CAR_MEETINGDT2 has 1826 observations and 10 variables.
NOTE: DATA statement used (Total process time):
      real time           0.00 seconds
      cpu time            0.01 seconds
      

1250  proc sort data=car_meetingdt2 nodupkey; by pairid treated gvkey ANNOUNCE_DATE ; run;

NOTE: There were 1826 observations read from the data set WORK.CAR_MEETINGDT2.
NOTE: 0 observations with duplicate key values were deleted.
NOTE: The data set WORK.CAR_MEETINGDT2 has 1826 observations and 10 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
      

1251  
1252  data car_meetingdt3; set rawdata.car_meetingdt_capm_11_round2;
1253      rename car = car_meeting11;
1254      label car = "CAR[-1+1] Meeting dt";
1255  run;

NOTE: There were 1846 observations read from the data set RAWDATA.CAR_MEETINGDT_CAPM_11_ROUND2.
NOTE: The data set WORK.CAR_MEETINGDT3 has 1846 observations and 10 variables.
NOTE: DATA statement used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
      

1256  proc sort data=car_meetingdt3 nodupkey; by pairid treated gvkey ANNOUNCE_DATE ; run;

NOTE: There were 1846 observations read from the data set WORK.CAR_MEETINGDT3.
NOTE: 0 observations with duplicate key values were deleted.
NOTE: The data set WORK.CAR_MEETINGDT3 has 1846 observations and 10 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
      

1257  
1258  data car_meetingdt4; set rawdata.car_meetingdt_capm_17;
1259      rename car = car_meeting17;
1260      label car = "CAR[+1+7] Meeting dt";
1261  run;

NOTE: There were 1826 observations read from the data set RAWDATA.CAR_MEETINGDT_CAPM_17.
NOTE: The data set WORK.CAR_MEETINGDT4 has 1826 observations and 10 variables.
NOTE: DATA statement used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
      

1262  proc sort data=car_meetingdt4 nodupkey; by pairid treated gvkey ANNOUNCE_DATE ; run;

NOTE: There were 1826 observations read from the data set WORK.CAR_MEETINGDT4.
NOTE: 0 observations with duplicate key values were deleted.
NOTE: The data set WORK.CAR_MEETINGDT4 has 1826 observations and 10 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
      

1263  
1264  data car_meetingdt5; set rawdata.car_meetingdt_capm_27_round2;
1265      rename car = car_meeting27;
1266      label car = "CAR[+2+7] Meeting dt";
1267  run;

NOTE: There were 1846 observations read from the data set RAWDATA.CAR_MEETINGDT_CAPM_27_ROUND2.
NOTE: The data set WORK.CAR_MEETINGDT5 has 1846 observations and 10 variables.
NOTE: DATA statement used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
      

1268  proc sort data=car_meetingdt5 nodupkey; by pairid treated gvkey ANNOUNCE_DATE ; run;

NOTE: There were 1846 observations read from the data set WORK.CAR_MEETINGDT5.
NOTE: 0 observations with duplicate key values were deleted.
NOTE: The data set WORK.CAR_MEETINGDT5 has 1846 observations and 10 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
      

1269  
1270  data car_meetingdt6; set rawdata.car_meetingdt_capm_214;
1271      rename car = car_meeting214;
1272      label car = "CAR[+2+14] Meeting dt";
1273  run;

NOTE: There were 1826 observations read from the data set RAWDATA.CAR_MEETINGDT_CAPM_214.
NOTE: The data set WORK.CAR_MEETINGDT6 has 1826 observations and 10 variables.
NOTE: DATA statement used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
      

1274  proc sort data=car_meetingdt6 nodupkey; by pairid treated gvkey ANNOUNCE_DATE ; run;

NOTE: There were 1826 observations read from the data set WORK.CAR_MEETINGDT6.
NOTE: 0 observations with duplicate key values were deleted.
NOTE: The data set WORK.CAR_MEETINGDT6 has 1826 observations and 10 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
      

1275  
1276  * compute the sum of Large and Small MFOR immediately before 13D;
1277  data mfor_13d; set rawdata.mfor_13d; run;

NOTE: There were 856 observations read from the data set RAWDATA.MFOR_13D.
NOTE: The data set WORK.MFOR_13D has 856 observations and 10 variables.
NOTE: DATA statement used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
      

1278  proc sort data=mfor_13d nodupkey; by gvkey CAMPAIGN_ID; run;

NOTE: There were 856 observations read from the data set WORK.MFOR_13D.
NOTE: 4 observations with duplicate key values were deleted.
NOTE: The data set WORK.MFOR_13D has 852 observations and 10 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.00 seconds
      cpu time            0.01 seconds
      

1279  
1280  * Investor Relation (IR) data;
1281  data ir; set rawdata.ir2_111624; run;

NOTE: There were 133334 observations read from the data set RAWDATA.IR2_111624.
NOTE: The data set WORK.IR has 133334 observations and 42 variables.
NOTE: DATA statement used (Total process time):
      real time           0.16 seconds
      cpu time            0.03 seconds
      

1282  
1283  * experience level of proxy solicitors;
1284  data advisory; set rawdata.advisory; run;

NOTE: There were 9262 observations read from the data set RAWDATA.ADVISORY.
NOTE: The data set WORK.ADVISORY has 9262 observations and 12 variables.
NOTE: DATA statement used (Total process time):
      real time           0.01 seconds
      cpu time            0.00 seconds
      

1285  proc sort data=advisory nodupkey; by CAMPAIGN_ID; run;

NOTE: There were 9262 observations read from the data set WORK.ADVISORY.
NOTE: 0 observations with duplicate key values were deleted.
NOTE: The data set WORK.ADVISORY has 9262 observations and 12 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
      

1286  
1287  * Insider Ownership;
1288  data insider; set rawdata.insider; run;

NOTE: There were 48632 observations read from the data set RAWDATA.INSIDER.
NOTE: The data set WORK.INSIDER has 48632 observations and 6 variables.
NOTE: DATA statement used (Total process time):
      real time           0.01 seconds
      cpu time            0.00 seconds
      

1289  
1290  * -------------------------------------------;
1291  * Merge datasets;
1292  * -------------------------------------------;
1293  proc sql;
1294  create table Analysis as
1295  select  a.*, b.*
1296  from    Analysis as a left join afc as b
1297  on      a.gvkey=b.gvkey and a.datadate = b.datadate ;
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
WARNING: Variable gvkey already exists on file WORK.ANALYSIS.
WARNING: Variable ryear already exists on file WORK.ANALYSIS.
WARNING: Variable datadate already exists on file WORK.ANALYSIS.
NOTE: Table WORK.ANALYSIS created, with 33533 rows and 306 columns.

1298  
1299  create table Analysis as
1300  select  a.*, b.insider_own
1301  from    Analysis as a left join insider as b
1302  on      a.gvkey=b.gvkey and a.datadate = b.datadate ;
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
NOTE: Table WORK.ANALYSIS created, with 33533 rows and 307 columns.

1303  
1304  create table Analysis as
1305  select  a.*, b.aim, b.ln_oneplusaim, b.ln_aim
1306  from    Analysis as a left join aim as b
1307  on      a.gvkey=b.gvkey and a.datadate = b.datadate;
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
NOTE: Table WORK.ANALYSIS created, with 33533 rows and 310 columns.

1308  
1309  create table Analysis as
1310  select  a.*, b.psynch1,b.psynch2,b.psynch3,b.pinfo1,b.pinfo2,b.pinfo3
1311  from    Analysis as a left join psynch as b
1312  on      a.gvkey=b.gvkey and a.fyearq = b.fyear and a.fqtr=b.fqtr;
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
NOTE: Table WORK.ANALYSIS created, with 33533 rows and 316 columns.

1313  
1314  create table Analysis as
1315  select  a.*, b.*
1316  from    Analysis as a left join io_class as b
1317  on      a.gvkey=b.gvkey and a.fyearq=b.ryear and a.fqtr=b.rqtr ;
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
WARNING: Variable gvkey already exists on file WORK.ANALYSIS.
WARNING: Variable permno already exists on file WORK.ANALYSIS.
WARNING: Variable rdate already exists on file WORK.ANALYSIS.
WARNING: Variable ryear already exists on file WORK.ANALYSIS.
NOTE: Table WORK.ANALYSIS created, with 33533 rows and 325 columns.

1318  
1319  create table Analysis as
1320  select  a.*, b.kzindex,b.saindex,b.wwindex
1321  from    Analysis as a left join constraints as b
1322  on      a.gvkey=b.gvkey and a.fyearq=b.fyear+1 ;
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
NOTE: Table WORK.ANALYSIS created, with 33533 rows and 328 columns.

1323  
1324  create table Analysis as
1325  select  a.*, b.abvolume, b.volumeturn
1326  from    Analysis as a left join abvolume as b
1327  on      a.gvkey=b.gvkey and a.fyearq=b.fyearq and a.fqtr=b.fqtr;
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
NOTE: Table WORK.ANALYSIS created, with 33533 rows and 330 columns.

1328  
1329  create table Analysis as
1330  select  a.*, b.*
1331  from    Analysis as a left join retvol as b
1332  on      a.gvkey=b.gvkey and a.rdq=b.enddt;
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
WARNING: Variable gvkey already exists on file WORK.ANALYSIS.
NOTE: Table WORK.ANALYSIS created, with 33533 rows and 336 columns.

1333  
1334  create table Analysis as
1335  select  a.*, b.car_meeting00
1336  from    Analysis as a left join car_meetingdt1 as b
1337  on      a.gvkey=b.gvkey and a.pairid=b.pairid  ;
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
NOTE: Table WORK.ANALYSIS created, with 33533 rows and 337 columns.

1338  
1339  create table Analysis as
1340  select  a.*, b.car_meeting01
1341  from    Analysis as a left join car_meetingdt2 as b
1342  on      a.gvkey=b.gvkey and a.pairid=b.pairid  ;
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
NOTE: Table WORK.ANALYSIS created, with 33533 rows and 338 columns.

1343  
1344  create table Analysis as
1345  select  a.*, b.car_meeting11
1346  from    Analysis as a left join car_meetingdt3 as b
1347  on      a.gvkey=b.gvkey and a.pairid=b.pairid  ;
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
NOTE: Table WORK.ANALYSIS created, with 33533 rows and 339 columns.

1348  
1349  create table Analysis as
1350  select  a.*, b.car_meeting17
1351  from    Analysis as a left join car_meetingdt4 as b
1352  on      a.gvkey=b.gvkey and a.pairid=b.pairid  ;
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
NOTE: Table WORK.ANALYSIS created, with 33533 rows and 340 columns.

1353  
1354  create table Analysis as
1355  select  a.*, b.car_meeting27
1356  from    Analysis as a left join car_meetingdt5 as b
1357  on      a.gvkey=b.gvkey and a.pairid=b.pairid  ;
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
NOTE: Table WORK.ANALYSIS created, with 33533 rows and 341 columns.

1358  
1359  create table Analysis as
1360  select  a.*, b.car_meeting214
1361  from    Analysis as a left join car_meetingdt6 as b
1362  on      a.gvkey=b.gvkey and a.pairid=b.pairid  ;
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
NOTE: Table WORK.ANALYSIS created, with 33533 rows and 342 columns.

1363  
1364  create table Analysis as
1365  select  a.*, b.*
1366  from    Analysis as a left join AFERR as b
1367  on      a.gvkey=b.gvkey and
1368          year(a.datadate)=year(b.FPEDATS);
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
WARNING: Variable gvkey already exists on file WORK.ANALYSIS.
NOTE: Table WORK.ANALYSIS created, with 33533 rows and 354 columns.

1369  quit;
NOTE: PROCEDURE SQL used (Total process time):
      real time           8.51 seconds
      cpu time            9.48 seconds
      

1370  proc sort data=Analysis nodupkey; by cid gvkey rdq; run;

NOTE: There were 33533 observations read from the data set WORK.ANALYSIS.
NOTE: 49 observations with duplicate key values were deleted.
NOTE: The data set WORK.ANALYSIS has 33484 observations and 354 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.35 seconds
      cpu time            0.34 seconds
      

1371  
1372  * other datasets;
1373  proc sql;
1374  create table Analysis as
1375  select  a.*, b.*
1376  from    Analysis as a left join mfor_13d as b
1377  on      a.gvkey=b.gvkey and a.CAMPAIGN_ID=b.CAMPAIGN_ID ;
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
WARNING: Variable gvkey already exists on file WORK.ANALYSIS.
WARNING: Variable campaign_id already exists on file WORK.ANALYSIS.
NOTE: Table WORK.ANALYSIS created, with 33484 rows and 362 columns.

1378  
1379  create table Analysis as
1380  select  a.*, b.*
1381  from    Analysis as a left join advisory as b
1382  on      a.CAMPAIGN_ID=b.CAMPAIGN_ID ;
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
WARNING: Variable CAMPAIGN_ID already exists on file WORK.ANALYSIS.
NOTE: Table WORK.ANALYSIS created, with 33484 rows and 373 columns.

1383  
1384  create table Analysis as
1385  select  a.*,
1386          b.ir_freq, b.ir_dum, b.ir_freq_ann, b.ir_max,
1387          b.ir_sic2, b.ir_std_sic2, b.ir_sic2_ann,
1388          b.ir_avg, b.ir_std, b.ir_min, b.ir_max,
1389          b.ir_avg_last4, b.ir_std_last4,
1390          b.ir_avg_last8, b.ir_std_last8,
1391          b.ir_avg_last12, b.ir_std_last12,
1392          b.ir_avg_last16, b.ir_std_last16,
1393          b.ir_freq_movave4, b.ir_freq_movave8, b.ir_freq_movave12, b.ir_freq_movave16,
1394          b.ir_freq_movstd4, b.ir_freq_movstd8, b.ir_freq_movstd12, b.ir_freq_movstd16
1395  from    Analysis as a left join ir as b
1396  on      a.gvkey=b.gvkey and
1397          year(a.rdq)=b.year and qtr(a.rdq)=b.quarter;
WARNING: This CREATE TABLE statement recursively references the target table. A consequence of 
         this is a possible data integrity problem.
WARNING: Variable ir_max already exists on file WORK.ANALYSIS.
NOTE: Table WORK.ANALYSIS created, with 33484 rows and 399 columns.

1398  quit;
NOTE: PROCEDURE SQL used (Total process time):
      real time           2.20 seconds
      cpu time            2.65 seconds
      

1399  proc sort data=Analysis nodupkey; by cid gvkey rdq; run;

NOTE: There were 33484 observations read from the data set WORK.ANALYSIS.
NOTE: 0 observations with duplicate key values were deleted.
NOTE: The data set WORK.ANALYSIS has 33484 observations and 399 variables.
NOTE: PROCEDURE SORT used (Total process time):
      real time           0.43 seconds
      cpu time            0.42 seconds
      

1400  
1401  * drop unwanted vars;
1402  data Analysis ;
1403      set Analysis;
1404      drop outcome_desc company_fee_desc dissident_fee_desc dir_off_own_desc
1404! campaign_synopsis campaign_title iso_country
1405      target: actfinanc: actlegal: actpr: ;
1406  run;

NOTE: There were 33484 observations read from the data set WORK.ANALYSIS.
NOTE: The data set WORK.ANALYSIS has 33484 observations and 355 variables.
NOTE: DATA statement used (Total process time):
      real time           0.21 seconds
      cpu time            0.18 seconds
      

1407  
1408  * Export data to Stata file;
1409  %let FFP =
1409! "C:\Users\hpham13\Projects\mf_activism\empirical\1_code\final_package_acceptance\assembledd
1409! ata_idx.dta";
1410  proc export data = Analysis outfile = &FFP. replace;
1410!                                                      run;

NOTE: The export data set has 33484 observations and 355 variables.
NOTE: "C:\Users\hpham13\Projects\mf_activism\empirical\1_code\final_package_acceptance\assembledd
      ata_idx.dta" file was successfully created.
NOTE: PROCEDURE EXPORT used (Total process time):
      real time           0.12 seconds
      cpu time            0.12 seconds
      

1411  
1412  proc printto;
1413  run;

